home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks ’87 / Source ƒ.sit / Source ƒ / C ƒ / CITADEL BBS 'C' SRC / LIBROOM.C < prev    next >
C/C++ Source or Header  |  1987-01-14  |  2KB  |  64 lines

  1. /************************************************************************/
  2. /*                libroom.c                */
  3. /*              Library for room code             */
  4. /************************************************************************/
  5.  
  6. /************************************************************************/
  7. /*                History                 */
  8. /*                                    */
  9. /* 85Nov15 HAW    Create.                         */
  10. /************************************************************************/
  11.  
  12. #include "ctdl.h"
  13.  
  14. /************************************************************************/
  15. /*                Contents                */
  16. /*                                    */
  17. /*    getRoom()        load given room into RAM        */
  18. /*    putRoom()        store room to given disk slot        */
  19. /************************************************************************/
  20.  
  21. struct aRoom     roomBuf;        /* Room buffer            */
  22. extern struct rTable  roomTab[MAXROOMS];/* RAM index            */
  23. FILE         *roomfl;        /* Room file descriptor     */
  24. int         thisRoom = LOBBY;    /* Current room         */
  25.  
  26. /************************************************************************/
  27. /*    getRoom()                            */
  28. /************************************************************************/
  29. getRoom(rm)
  30. int rm;
  31. {
  32.     long int s;
  33.     long val;
  34.  
  35.     /* load room #rm into memory starting at buf */
  36.     thisRoom    = rm;
  37.     s = rm * sizeof roomBuf;
  38.     fseek(roomfl, s, 0);
  39.  
  40.     if (fread(&roomBuf, sizeof roomBuf, 1, roomfl) != 1)   {
  41.     crashout(" ?getRoom(): read failed//error or EOF!");
  42.     }
  43.     crypte(&roomBuf, sizeof roomBuf, rm);
  44. }
  45.  
  46. /************************************************************************/
  47. /*    putRoom() stores room in buf into slot rm in room.buf        */
  48. /************************************************************************/
  49. putRoom(rm)
  50. int rm;
  51. {
  52.     long int s;
  53.  
  54.     crypte(&roomBuf, sizeof roomBuf, rm);
  55.     s = rm * sizeof roomBuf;
  56.  
  57.     fseek(roomfl, s, 0);
  58.     if (fwrite(&roomBuf, sizeof roomBuf, 1, roomfl) != 1) {
  59.     crashout("?putRoom() crash!//0 returned!!!");
  60.     }
  61.  
  62.     crypte(&roomBuf, sizeof roomBuf, rm);
  63. }
  64.